iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0
Mobile Development

Swift大航道-啟航篇系列 第 20

swift 天氣API-傳送資料和跳轉頁面

  • 分享至 

  • xImage
  •  

天氣api 傳送資料與跳轉頁面的方法

資料傳送

我們已經有拉一個button的元件了,並完成了設置,我們來看頁面間資料的傳輸,因為我們是主畫面傳到其他的畫面,所以我們這邊不用protocol傳輸

@IBAction func Confirm(_ sender: Any) {
        if let selectAreaa = selectArea {
            print("這是所選擇的地區 \(selectArea ?? "no")")
            let areaVC = AreaViewController()
            areaVC.selectedArea = selectAreaa
            self.present(areaVC, animated: true, completion: nil)
        }
    }

這邊是button案扭的func,如果選擇的地區是空值,就給定一個值給他,然後print出來檢查,然後再創建一個AreaViewController的實例,再把之前設定的selectAreaa賦予到areaVC頁面的selectedArea,最後再用present跳轉畫面,第一個是跳轉到跳轉到的頁面,animated是跳轉的動畫,completion是跳轉完成後不執行額外的動作,以下就是跳轉畫面的樣子囉
截圖 2024-09-20 上午9.39.46
present是從下往上跳出來的畫面

跳轉頁面的樣式

我們除了用present跳轉畫面之外,另外還有pop,push

@IBAction func Confirm(_ sender: Any) {
    if let selectAreaa = selectArea {
        print("這是所選擇的地區 \(selectArea ?? "no")")
        
        // 創建 AreaViewController 的實例
        let areaVC = AreaViewController()
        areaVC.selectedArea = selectAreaa
        
        // 使用 push 方法將 AreaViewController 推入導航堆疊
        navigationController?.pushViewController(areaVC, animated: true)
    }
}

然後push和pop的寫法很相似,程式如下

@IBAction func Confirm(_ sender: Any) {
    if let selectAreaa = selectArea {
        print("這是所選擇的地區 \(selectAreaa)")
        
        // 獲取導航控制器
        if let navigationController = navigationController,
           let previousVC = navigationController.viewControllers[navigationController.viewControllers.count - 2] as? PreviousViewController {
            // 假設上一個視圖控制器有一個屬性來接收資料
            previousVC.receivedArea = selectAreaa
        }
        
        // 使用 pop 方法返回到上一個視圖控制器
        navigationController?.popViewController(animated: true)
    }
}

結論

以上就是swift的跳轉畫面的方法和天氣api專案的確認按鈕的功能喔!,明天我們會來分享連接天氣api的前置動作喔!、


上一篇
swift 天氣API - picker VIew
下一篇
swift 天氣API-建立結構
系列文
Swift大航道-啟航篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言